# Ceon URI Mapping

probably the best Zen Cart URI Mapping/SEO Module in the world! ...ever!

Click here to get more great software from Ceon

- Overview |
- Installation |
- Configuration |
- FAQs |
- Support |
- Revision History |
- Upgrading |
- Module Info |
- Module Features

## Features

- ### Use Static URIs to Make Web Addresses Easier To Remember and Easier To Enter. Improve the store's Rankings in Search Engines!

  - Implementing a major part of all SEO (Search Engine Optimisation) practices, this module lets the store specify static, keyword-based URIs to be used instead of the dynamic, ID-based URIs which Zen Cart uses as standard.

  - For example, for a product, instead of dynamic URIs like this:

    http://yourstore.com/index.php?main_page=product_info&cPath=3&products_id=5

  - A static address - easy to read, easy to type in and full of keywords - could be specified for the product:

    http://yourstore.com/books/life-is-good

- ### Historical URI Mapping - No More Broken Links!

  - Each Category/Product/Manufacturer/EZ-Page/Zen Cart Page (subject) with URI mapping(s) has a single “Current” URI.
  - Any number of URIs can map to the same subject. However, when a customer uses a URI which is not the “current” URI they are quickly and automatically redirected to the “current” URI. This occurs before the site begins to display, so is completely transparent.
  - “Deleted”/“Previous” URI mappings still point towards their original subject, by redirecting the user to the “Current” URI for the subject (unless they have become overridden by a current or newer URI mapping which uses the same URI of course!).

- ### Canonical URIs

  - Any page with a static URI automatically has a canonical URI tag added to the page's header. This minimises “duplicate content” reports as it tells the search engines that multiple “pages” should be treated as one.
  - For example, instead of the search engine thinking that `/all-products?disp_order=1` is a different page from `/all-products?disp_order=3`, Ceon URI Mapping lets it know that the page's “real” URI is just `/all-products` and that these other URIs are just variations for the same page.

- ### Easy-to-use Admin Integration for Categories, Products, Manufacturers and EZ-Pages

  - Specifying custom URI mappings for Categories, Products, Manufacturers and EZ-Pages is quick and easy.. just browse to the appropriate Category/Product/Manufacturer/EZ-Page in the admin and enter the URI to be used in the text fields added by the module, or tick the “auto-generate” check box, if auto-generation is enabled!
  - Change existing Category/Product/Manufacturer/EZ-Page URI mappings in the same easy manner!

- ### URI Mapping Auto-generation

  - The module comes with very powerful, flexible and easy-to-use URI mapping auto-generation functionality.
  - If auto-generation is used to create a URI mapping for a Category, Product, Manufacturer or EZ-Page it automatically capitalises the Category/Product/Manufacturer Name or EZ-Page Title according to the store's preferred settings, replaces any whitespace with a preferred character, removes selected words and replaces particular characters/strings as specified in the configuration utility.

  - Please Note: This module does not automatically add mappings for existing Categories/Products/Manufacturers/EZ-Pages - if the site has existing Categories/Products/Manufacturers/EZ-Pages, they'll continue to use the standard Zen Cart dynamic URIs, until a URI has been entered or auto-generated for them, by editing the respective Category/Product/Manufacturer/EZ-Page in the admin.

    This means going in and editing every Category/Product/Manufacturer/EZ-Page for which a static URI mapping is desired. Ceon's URI Mappings Manager software can generate URIs for entire categories etc. at once.

- ### Full Multi-language Support - including Transliteration and UTF-8!

  - The module is fully multilingual - every page can have a URI mapping for each language supported by the store!
  - The module automatically causes Zen Cart to use the language the URI uses, greatly enhancing Zen Cart's language functionality!
  - This multi-language functionality makes it likely that the site will feature much higher in search engine listings specific to the various languages the store supports.
  - The module also has full support for transliteration! When using the URI mapping auto-generation functionality it transliterates the names/titles from any language into plain ASCII, the format used by URIs.
  - Transliteration support means that characters outside of the standard character set allowed in URIs won't just be stripped from the URI, leaving words with letters missing. For example, “á” is replaced with “a”, “ß” is replaced with “ss” etc.
  - The transliteration support extends to supporting the UTF-8 character set, so Japanese, Chinese characters etc. are all handled easily!

- ### Organise EZ-Pages into Site Sections

  - By putting a bit of thought into the format of URI mappings for EZ-Pages, it is possible to organise them into logical sections.
  - EZ-Pages no longer have to appear as being “root” pages of the site!

  - For example, a “Company” section could be created with 4 EZ-Pages using URI mappings such as the following:

    /company
    /company/about-us
    /company/about-us/endorsements
    /company/how-to-find-us

- ### Ability to use Static URIs for any Zen Cart page

  - There are two methods for using static URIs for any Zen Cart page, both of which have full support for having a “current” URI, as many historical/“old” URIs as necessary and are fully multi-lingual:
    1. Static URIs can be used for any Zen Cart page by directly entering the static URI for the page and the type of the page in the database table for the module.
       - Using this method to specify static URIs for a Zen Cart page will cause every link to that page to use the static URI instead of the dynamic Zen Cart URI.

       - For example, to create a static URI for “index.php?main_page=specials”:

         uri: /latest-offers

         main_page: specials

    2. Static URIs being used for Zen Cart pages can also allow data to be supplied to Zen Cart.
       - This is achieved by initialising the GET variables for the Zen Cart page when it is loaded, which are set up by directly entering the static URI for the page, the type of the page and the GET variables to be loaded in the database table for the module.

       - For example:

         uri: /surveys/shipping

       - Could map to a custom survey page, with the necessary ID for the survey to be shown:

         main_page: survey

         query_string_parameters: survey_id=2

       - Please Note: These URIs will only be used as the static URIs for links if the query string parameters being used to generate the link are exactly the same as the value of the “query_string_parameters” field (with the exception that the session parameter, if any, is ignored).
  - Please note: There is no admin interface for entering these URI mappings in this module, they have to be entered manually (using software such as PHPMyAdmin). Alternatively, Ceon's URI Mappings Manager software has an easy-to-use interface for setting up and managing all the URI mappings this module can use.

- ### Automatic Usage of any URI mappings Defined for Categories, Products, Manufacturers, EZ-Pages or any other Zen Cart page!

  - The module modifies the main zen_href_link function slightly to make automatic use of any URI mappings defined for a category, product, manufacturer, EZ-Page or other Zen Cart page.
  - Having each page link to each other using their static URIs makes the site easier to navigate and increases the usage of keywords on the site, further helping SEO!

- ### Ability to use Static URIs as an Alias for any other Static URI

  - The module can be used to redirect from one static URI to an alternative URI (even to an external URI).
  - The exact type of redirection (temporary/permanent etc.) can even be controlled, by specifying the HTTP Status Code to be used for the redirection to the alternative URI.
  - Creating aliases allows the store to handle visits to broken/old links.
  - It also allows the store to increase the number of keywords being used to link to a page on the site through the creation of an alternative link/alias.
  - Please note: There is no admin interface for entering these URI mappings in this module, they have to be entered manually (using software such as PHPMyAdmin). Alternatively, Ceon's URI Mappings Manager software has an easy-to-use interface for setting up and managing all the URI mappings this module can use.

- ### Automated support for standard Zen Cart pages related to a Product

  - The Reviews and Tell-A-Friend sections can automatically be made “subsections” of the product's main info page, by appending some specific URI parts to the product info page's static URI.

  - This saves effort setting up URIs for these pages specifically for each product, as it creates static URIs such as:

    /books/life-is-good/reviews

    /books/life-is-good/tell-a-friend

  - [New for 4.0.0] A section in the module's Config Utility allows the store to select which “Product Page URIs” are automatically managed by the software, and to set the text that should be used for the URIs.

- ### 100% Compatibility with Zen Cart and Most Modules, Minimal Tweaks Required for Some Other Modules

  - Installing the module won't break any of the functionality of Zen Cart.
  - The module works using Zen Cart's Initsystem so it doesn't interfere with any of its workings. Zen Cart pages have no idea the module is even running, the run-time environment appears exactly as if the module wasn't installed.
  - This means that the module should work perfectly with most (and most likely all) other Zen Cart modules - as long as they don't use relative links/paths. Those modules which do use relative links/paths simply need to have their relative links/paths changed to static links/paths, something which is easily done by adding a single define to the start of the links/paths.
  - [New for 4.0.0] The software does its best to work out if it is being called by a third party script instead of directly from Zen Cart and will prevent itself from interfering with the running of the third party script!

- ### Transparently Handles URIs With or Without a Slash (/) at the End

  - The module sees URIs with a slash at the end as identical to those without one. For example, the following are equivalent:

    http://yourstore.com/books/life-is-good
    http://yourstore.com/books/life-is-good/

- ### Respects Context of a Link to a Category/Product page

  - The module retains Zen Cart's category history when linking to a subcategory of another category or a linked product which is not within its “master” category, so the full path back through any parent categories is available. (Without this feature all categories being mapped to by a URI mapping would appear as if their only parent category was the root of the store and linked products would always show as belonging to their “master” category, which is not necessarily the category the customer has accessed the product from).

- ### Avoids Possibility of Duplicate URIs

  - [New for 4.0.0] The software won't allow a duplicate URI mapping to be created. It can be configured to warn the user when an attempt is being made to create a URI mapping which would clash with one already being used elsewhere.
  - For product URIs, the software can even be configured to automatically append a number to a URI when a clash is detected, to make the URI unique without the user having to manually change anything themselves!

- ### Support for all of Zen Cart's Standard Product Types (and more)!

  - The module has full support for the standard 5 product types in Zen Cart plus the product_book type (version 4 from the Zen Cart download area).

- ### Easy to Install and Keep Up To Date!

  - [New for 4.0.0] The module has an “Installation Check” section in its config utility which analyses the store's configuration, identifies any problems and tells you what they are and how to fix them!
  - [New for 4.0.0] Once the module has been installed initially, upgrading to a new version takes aroud 10 seconds. The files for the new version simply have to be copied across, then the software will take over and carry out any necessary updates itself!

- ### Compatible with the Most Popular Webservers

  A webserver that supports rewrite rules is required. Currently tested/supported webservers are:

  - Apache with mod_rewrite.
  - IIS with ISAPI_Rewrite 3.
  - IIS with IIS URL Rewrite.
  - nginx.
  - Zeus Webserver (get in contact for integration details).

- ### Lightweight!

  - The module has a minimal impact on the server as it is very lightweight.

Back to top